Graph analysis techniques are used to study graphs that model pair-wise relations between objects. A graph is a collection of “vertices” (or “nodes”) and a collection of “edges” (or “links”) that connect pairs of vertices. The vertices of a graph may represent various types of objects, such as persons, websites, machines, etc., and the edges may represent various types of relations between the objects represented by the vertices. Graph analyses have found applications in many different contexts for answering different types of inquiries. For instance, graph analysis techniques have been used to study the World Wide Web, telephone communications, social networks, resource allocations, etc. In many real-world applications, graphs being studies can be fairly complex and massive, with many vertices and edges, and the analyses are computation-intensive. A graph analysis technique capable of processing a complex graph in an efficient way to extract useful information can be very valuable.